package com.ylyq.ylxx.model.request;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.List;

/**
 * @ClassName GeneratePlansLubanRequest
 * @Description TODO
 * @Author xiaweichao
 * @Date 2020/9/19 10:56
 * @Version 1.0
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
@ApiModel(value = "鲁班批量生成广告计划的请求参数")
public class GeneratePlansLubanRequest {
    @ApiModelProperty(value = "表单还是鲁班标识。0鲁班，1表单",required = true)
    private Integer shopFlag;

    @ApiModelProperty(value = "广告主ID",required = true)
    private Long advertiser_id;

    @ApiModelProperty(value = "品牌名称",required = true)
    private String brandName;
    @ApiModelProperty(value = "商品名称",required = true)
    private String productName;

    @ApiModelProperty(value = "品类ID",required = true)
    private String category_id;
    @ApiModelProperty(value = "品牌ID,国际一线：1，国际二线：2，国际三线：3，国内一线：4，国内二线：5，国内三线：6，全新初创：7",required = true)
    private String brand_id;
    @ApiModelProperty(value = "单个表单信息价值",required = true)
    private Double priceForm;
    @ApiModelProperty(value = "商品价格",required = true)
    private Double price;
    @ApiModelProperty(value = "行业均价",required = true)
    private Double price_avg;
    //    @ApiModelProperty(value = "投放日预算",required = true)
//    private Double budgetDay;
//    @ApiModelProperty(value = "投放周预算",required = true)
//    private Double budgetWeek;
//    @ApiModelProperty(value = "投放总预算",required = true)
//    private Double budget;
    @ApiModelProperty(value = "产品特点",required = true)
    private List<String> productFeatures;
    @ApiModelProperty(value = "产品优势",required = true)
    private List<String> productAdvantage;
    @ApiModelProperty(value = "落得页链接",required = true)
    private String external_url;
    @ApiModelProperty(value = "转化目标id",required = true)
    private Long covertId;
    @ApiModelProperty(value = "创意数据-非处理方式。image_list和scrapBean两种方式二选一",required = true)
    private List<GeneratePlansRequest.CreativeListBean> image_list;
    @ApiModelProperty(value = "创意数据-处理方式。image_list和scrapBean两种方式二选一",required = true)
    private GeneratePlansRequest.CreativeScrapBean scrapBean;
    @ApiModelProperty(value = "公司名称",required = true)
    private String companyName;
    @ApiModelProperty(value = "广告头像")
    private String companyHead;

    @ApiModelProperty(value = "商品外形url，多个url用“,”拼接",required = true)
    private String chooseUrl;
    @ApiModelProperty(value = "商品条形码url，多个url用“,”拼接")
    private String chooseCodeUrl;

    @ApiModelProperty(value = "目标客户地域")
    private String area;
    @ApiModelProperty(value = "目标客户性别")
    private String sex;
    @ApiModelProperty(value = "目标客户年龄")
    private String age;

    @ApiModelProperty(value = "排除地域的id")
    private String[] excludecityId;
    @ApiModelProperty(value = "选择地域的id")
    private String[] includecityId;
    @ApiModelProperty(value = "创意投放位置,详见【附录-投放位置】，请注意广告位中的头图信息流（INVENTORY_FEED）与头条详情页（INVENTORY_TEXT_LINK）已合并为头条系（依然使用INVENTORY_FEED字段，名称更改为头条系）")
    private String[] inventory_type;

    @NoArgsConstructor
    @Data
    @ApiModel(value = "批量生成广告计划的请求参数-创意数据-非处理方式。和CreativeScrapBean二选一")
    public static class CreativeListBean {
        @ApiModelProperty(value = "素材类型， 注意：程序化创意不支持组图 CREATIVE_IMAGE_MODE_GROUP，其他类型图片都支持，如横版/竖版大图、小图。",required = true)
        private String image_mode;
        @ApiModelProperty(value = "图片id，视频素材时必填写。图片ID和视频ID可通过 文件管理 中的接口获得")
        private String image_id;
        @ApiModelProperty(value = "视频id，视频素材时必填写。图片ID和视频ID可通过 文件管理 中的接口获得")
        private String video_id;
        @ApiModelProperty(value = "图片id列表，非视频素材时必填写。图片ID和视频ID可通过 文件管理 中的接口获得。在一个子元素中：组图类型传3张图，其他类型传1张")
        private String[] image_ids;
    }

    @NoArgsConstructor
    @Data
    @ApiModel(value = "批量生成广告计划的请求参数-创意数据-处理方式")
    public static class CreativeScrapBean {
        @ApiModelProperty(value = "素材类型， 注意：程序化创意不支持组图 CREATIVE_IMAGE_MODE_GROUP，其他类型图片都支持，如横版/竖版大图、小图。",required = true)
        private String material_mode;
        @ApiModelProperty(value = "图片id，视频素材时必填写。图片ID和视频ID可通过 文件管理 中的接口获得")
        private List<String> image_id;
        @ApiModelProperty(value = "视频id，视频素材时必填写。图片ID和视频ID可通过 文件管理 中的接口获得")
        private List<String> video_id;
    }
}
